ZMSC3.Xがmint上で動作しない!!とお嘆きの貴方に ---------------------------------------------------------------- mint.xは定義ファイル.mint(_mintの方もいる?)で %mdxt 1 を設定している場合 ZMSC3.Xを常駐させると、内部でver3.0で変更になったファンクション $4E(旧get_1st_comment)を呼出し、エラーが発生してしまいます。 そこで、ZMSC3.Xが常駐している場合はZMUSICは常駐していないと みなすようにmint.x ver2.25の方にパッチをあててみました。 ---------------------------------------------------------------- ・mintがver2.25の場合 カレントディレクトリにmint.xとmint.bfdを置いて bup mint.bfd でパッチをあてて下さい。 ---------------------------------------------------------------- ・バージョンが違う場合 定義ファイル.mint(_mint)中の %mdxt 1 を %mdxt 0 に書き換えて下さい。 ---------------------------------------------------------------- おまけ ZMUSIC ver2.0対応のプログラムは 概ね以下のようなルーチンでZMUSIC.xの常駐チェックを行なっています。 ZMUSIC_CHECK_IMCOMPLETE: moveq.l #$00,D0 movea.l $008C.w,A0 subq.l #$08,A0 *−8 cmpi.l #'ZmuS',(A0)+ *'ZmuSiC'先頭4文字 bne @f cmpi.w #'iC',(A0) *残り2文字 bne @f moveq.l #$FF,D0 *エラーコード @@: rts この場合、常駐しているのがver2.0なのかver3.0なのかを判別していません。 そこで、このサブルーチンのマシンコードサイズを変えないように ver3.0のチェックを実装すると以下のようになります。 ZMUSIC_V2_CHECK: moveq.l #$00,D0 movea.l $008C.w,A0 subq.l #$06,A0 *−6 <<(注意) cmpi.l #'uSiC',(A0)+ *残り4文字 bne @f cmpi.w #$3040,(A0) *バージョン3か? bcc @f moveq.l #$FF,D0 @@: rts 文字列の比較は先頭2文字を除いた残り4文字しかせず その分をバージョンチェックに割り当てています。 このようにすれば、逆アセンブルしたソースを変更したものから 再アセンブルした場合に正しいプログラムが作成されないような プログラムにもパッチをあてることができます。 本来ならば、6文字全ての比較+バージョンチェックを するべきなのは言うまでもないでしょう。 他のZMUSIC対応プログラムに関しても 作者の方が直接対応して下さるのが一番でしょうが 当面は上記のような方法で各自対処してみて下さい。 ----------------------------------------------------------------  このファイル及び付属のmint.bfdは X68k、ZMUSIC、mintを利用されている全てのユーザに閲覧されることを 目的として作成されました。 ---------------------------------------------------------------- [MZL]